home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / C64 / T-TPUG Old Monthly Disks / (c)tm.d64 / factor race.c (.txt) < prev    next >
Commodore BASIC  |  2007-02-04  |  5KB  |  226 lines

  1. 0 REM
  2. 1 POKE53280,0:POKE53281,0:E=31744:PRINT"[152]"CHR$(142):REM  C64 MODS BY WIM '83
  3. 2 REM
  4. 10 DIMAA(13)
  5. 100 PRINT"[147]THIS IS A GAME FOR TWO, THREE OR FOUR"
  6. 105 PRINT"PLAYERS. TO WIN, YOU MUST BE ABLE TO"
  7. 110 PRINT"FACTOR SOME ALGEBRAIC EXPRESSIONS."
  8. 115 PRINT
  9. 120 PRINT"YOU WILL BE ASKED TO MAKE A BET. IF"
  10. 125 PRINT"YOU BET A HIGH NUMBER, YOU MAY BE ASKED"
  11. 130 PRINT"TO FACTOR A DIFFICULT EXPRESSION, BUT"
  12. 135 PRINT"IF YOU GET IT RIGHT YOU WILL ADVANCE"
  13. 140 PRINT"A LONG WAY DOWN THE RACE TRACK. IF"
  14. 145 PRINT"YOU GET THE FACTORS WRONG, THOUGH, YOU"
  15. 150 PRINT"WILL LOSE GROUND IN THE RACE."
  16. 155 PRINT
  17. 160 PRINT"YOU HAVE TO BE ABLE TO WRITE FACTORS"
  18. 165 PRINT"IN GOOD MATHEMATICAL FORM. HERE ARE"
  19. 170 PRINT"REMINDERS. NEVER WRITE A COEFFICIENT"
  20. 175 PRINT"OF ONE. ALWAYS WRITE COMMON FACTORS"
  21. 180 PRINT"FIRST. IF TWO OR MORE FACTORS ARE"
  22. 185 PRINT"IDENTICAL, USE EXPONENTS. ON THIS"
  23. 190 PRINT"COMPUTER YOU ENTER EXPONENTS BY USING"
  24. 195 PRINT"THE '^' KEY. THUS 'X SQUARED' BECOMES"
  25. 200 PRINT"'X^2'."
  26. 210 PRINT
  27. 220 PRINT"  PRESS SPACE BAR TO CONTINUE"
  28. 230 GETYB$:IFYB$<>""THEN230
  29. 240 GETYB$:IFYB$<>" "THEN240
  30. 400 PRINT"[147]HOW MANY PLAYERS WILL THERE BE? (2-4)"
  31. 410 INPUTNP
  32. 420 IFABS(3-NP)>1THENPRINT"ILLEGAL NUMBER":GOTO400
  33. 500 REM DRAW TRACK
  34. 505 PRINT"[147]"
  35. 510 FORDV=1TONP+1
  36. 520 FORV1=1TO40:PRINT"-";:NEXT
  37. 530 PRINT
  38. 540 NEXT
  39. 550 PRINT"[145]START                             FINISH"
  40. 600 FORPN=1TONP
  41. 610 GOSUB11000
  42. 620 NEXT
  43. 650 PN=1
  44. 700 WA=0
  45. 710 PRINT""
  46. 720 PRINT"PLAYER"PN", HOW MUCH DO YOU BET? (1-6)"
  47. 725 INPUTDI
  48. 727 DI=DI-1
  49. 730 IFABS(2.5-DI)>2.5THEN710
  50. 735 GOSUB6000:GOSUB7000
  51. 740 PRINT"FACTOR  [145]"P$
  52. 750 INPUTIN$
  53. 755 GOSUB9000:GOSUB10000
  54. 760 IFWA=1GOTO800
  55. 770 PRINT"WELL DONE!":SC(PN)=SC(PN)+DI+1:GOSUB11000
  56. 775 IFSC(PN)>35GOTO1100
  57. 780 PN=PN+1:IFPN>NPTHENPN=1
  58. 790 GOTO890
  59. 800 PRINT"NO, THE FACTORS ARE"
  60. 810 PRINTF1$;F2$;F3$
  61. 820 SC(PN)=SC(PN)-DI-1
  62. 830 IFSC(PN)<0THENSC(PN)=0
  63. 840 GOSUB11000
  64. 880 PN=PN+1:IFPN>NPTHENPN=1
  65. 890 TK=TI
  66. 900 IFTI-TK<200THEN900
  67. 902 IFWA=0GOTO910
  68. 905 IFTI-TK<700THEN905
  69. 910 PRINT""
  70. 920 FORDV=1TO12
  71. 930 PRINT"                                      "
  72. 940 NEXT
  73. 950 GOTO700
  74. 1100 PRINT"[147]PLAYER"PN"WINS
  75. 1110 [153]"DO YOU WISH TO PLAY AGAIN? (Y OR N)"
  76. 1120 [161]YA$:[139]YA$[178]""[167]1120
  77. 1130 [139]YA$[178]"Y"[167][156]:[137]0
  78. 1140 [139]YA$[178]"N"[167][153]"GOODBYE!":[128]
  79. 1150 [137]1120
  80. 4999 [128]
  81. 5000 [143] GENERATE PAIRS OF NUMBERS WITHOUT COMMON FACTORS
  82. 5070 AX[178]0
  83. 5100 [129]DV[178]1[164]13:AA(DV)[178]0:[130]
  84. 5450 AD[178]1:AE[178]1
  85. 5480 [129]DV[178]1[164]DI[173]3[170]1
  86. 5500 AB[178](10[170]DI)[172]([187](1))[174](10[173](DI[170]10))
  87. 5510 [139]AB[179]2[167]AC[178]1:[137]5550
  88. 5512 [139]AB[179]6[167]AC[178]2:AA(2)[178]1:[137]5550
  89. 5514 [139]AB[179]10[167]AC[178]3:AA(3)[178]1:[137]5550
  90. 5516 [139]AB[179]12[167]AC[178]5:AA(5)[178]1:[137]5550
  91. 5518 [139]AB[179]13[167]AC[178]7:AA(7)[178]1:[137]5550
  92. 5520 [139]AB[179]14[167]AC[178]11:AA(11)[178]1:[137]5550
  93. 5522 [139]AB[179]15[167]AC[178]13:AA(13)[178]1:[137]5550
  94. 5550 AD[178]AD[172]AC
  95. 5555 [139]AD[177][178]5[170]3[172]DI[137]5000
  96. 5560 [130]
  97. 5590 AF[178][181](10[172][187](1))
  98. 5595 [139]AF[177]4[167]AF[178]1:[137]5600
  99. 5597 AF[178][171]1
  100. 5600 AD[178]AD[172]AF
  101. 5680 [129]DV[178]1[164]DI[173]3[170]1
  102. 5700 AB[178](2[170]2.6[172]DI)[172]([187](1))[174](10[173](DI[170]10))
  103. 5710 [139]AB[179]2[167]AC[178]1:[137]5730
  104. 5712 [139]AB[179]6[167]AC[178]2:[137]5730
  105. 5714 [139]AB[179]10[167]AC[178]3:[137]5730
  106. 5716 [139]AB[179]12[167]AC[178]5:[137]5730
  107. 5718 [139]AB[179]13[167]AC[178]7:[137]5730
  108. 5720 [139]AB[179]14[167]AC[178]11:[137]5730
  109. 5722 [139]AB[179]15[167]AC[178]13:[137]5730
  110. 5730 [139]AA(AC)[178]1[137]5700
  111. 5750 AE[178]AE[172]AC
  112. 5755 [139]AE[177][178]10[170]2[172]DI[167]AE[178]1:[137]5680
  113. 5760 [130]
  114. 5900 [142]
  115. 6000 [143] GENERATE POLYNOMIAL STRINGS
  116. 6010 [141]5000:AM[178]AE:AN[178]AD
  117. 6020 [141]5000:AO[178]AE:AP[178]AD
  118. 6030 [139]DI[179]2[167]AQ[178]1:AR[178]0:[137]6100
  119. 6040 [139]DI[178]3[167]AQ[178]1:AR[178]0:[137]6100
  120. 6050 [141]5000:AQ[178]AD:AR[178]AE[171]1
  121. 6100 C1[178]AQ[172]AM[172]AO:C1$[178][196](C1)
  122. 6110 C2[178]AQ[172](AM[172]AP[170]AN[172]AO):C2$[178][196](C2)
  123. 6120 C3[178]AQ[172]AN[172]AP:C3$[178][196](C3)
  124. 6130 V1$[178]"X":V2$[178]"X":V3$[178]"X"
  125. 6140 E1[178]2[170]AR:E1$[178][196](E1)
  126. 6150 E2[178]1[170]AR:E2$[178][196](E2)
  127. 6160 E3[178]AR:E3$[178][196](E3)
  128. 6170 [139]E2[178]1[167]E2$[178]""
  129. 6180 [139]E3[178]1[167]E3$[178]""
  130. 6190 [139]E3[178]0[167]E3$[178]"":V3$[178]""
  131. 6200 S1$[178]"+":[139]C2[179]0[167]S1$[178]""
  132. 6210 S2$[178]"+":[139]C3[179]0[167]S2$[178]""
  133. 6220 [139]C3[178]0[167]C3$[178]"":S2$[178]"":V3$[178]""
  134. 6230 [139]C2[178]0[167]S1$[178]"":C2$[178]"":V2$[178]"":E2$[178]""
  135. 6240 [139]C1[178]0[167]CI$[178]""
  136. 6250 [139]C1[178]1[167]C1$[178]" "
  137. 6260 [139]C2[178]1[167]C2$[178]""
  138. 6270 [139]C3[179][177]1[137]6280
  139. 6275 [139]V3$[179][177]""[167]C3$[178]""
  140. 6280 [139]C1[178][171]1[167]C1$[178]"-"
  141. 6290 [139]C2[178][171]1[167]C2$[178]"-"
  142. 6300 [139]C3[179][177][171]1[137]6500
  143. 6310 [139]V3$[179][177]""[167]C3$[178]"-"
  144. 6500 P$[178]""[170]C1$[170]V1$[170]"ON"[170]E1$[170]""[170]S1$[170]C2$[170]V2$[170]"ON"[170]E2$[170]""[170]S2$[170]C3$[170]V3$[170]"ON"[170]E3$[170]"
  145. 6600 BR$=P$:GOSUB8000:P$=BR$
  146. 6999 RETURN
  147. 7000 REM GENERATE FACTORS
  148. 7100 FA$=STR$(AQ)
  149. 7110 IFAQ=1THENFA$=""
  150. 7115 IFAQ=-1THENFA$="-"
  151. 7120 FB$="X":IFAR=0THENFB$=""
  152. 7130 FC$="^"+STR$(AR):IFAR=0THENFC$=""
  153. 7135 IFAR=1THENFC$=""
  154. 7140 F1$=FA$+FB$+FC$
  155. 7150 FD$=STR$(AM)
  156. 7155 IFAM=1THENFD$=""
  157. 7160 FE$="X"
  158. 7170 FF$="+":IFAN<=0THENFF$=""
  159. 7180 IFAM=0THENFD$="":FE$="":FF$=""
  160. 7190 FG$=STR$(AN):IFAN=0THENFG$="":FF$=""
  161. 7200 F2$="("+FD$+FE$+FF$+FG$+")"
  162. 7250 FH$=STR$(AO)
  163. 7255 IFAO=1THENFH$=""
  164. 7260 FI$="X"
  165. 7270 FJ$="+":IFAP<=0THENFJ$=""
  166. 7280 IFAO=0THENFH$="":FI$="":FJ$=""
  167. 7290 FK$=STR$(AP):IFAP=0THENFK$="":FJ$=""
  168. 7300 F3$="("+FH$+FI$+FJ$+FK$+")"
  169. 7500 IFF2$=F3$THENF3$="^2"
  170. 7600 IFF1$="[145]"THENF1$=""
  171. 7700 BR$=F1$:GOSUB8000:F1$=BR$
  172. 7710 BR$=F2$:GOSUB8000:F2$=BR$
  173. 7720 BR$=F3$:GOSUB8000:F3$=BR$
  174. 7999 RETURN
  175. 8000 REM BLANK REMOVAL, STRING = BR$
  176. 8010 BP$=""
  177. 8020 FORDV=1TOLEN(BR$)
  178. 8030 IFMID$(BR$,DV,1)=" "THEN8050
  179. 8033 IFMID$(BR$,DV,1)="["THENBP$=BP$+"(":GOTO8050
  180. 8035 IFMID$(BR$,DV,1)="]"THENBP$=BP$+")":GOTO8050
  181. 8040 BP$=BP$+MID$(BR$,DV,1)
  182. 8050 NEXT
  183. 8060 BR$=BP$
  184. 8100 RETURN
  185. 9000 REM FINDING FACTORS IN ANSWER
  186. 9020 BR$=IN$:GOSUB8000:IN$=BR$
  187. 9025 IFLEFT$(IN$,1)="?"THENIN$=RIGHT$(IN$,LEN(IN$)-1)
  188. 9030 G1$=""
  189. 9040 FORDV=1TOLEN(IN$)
  190. 9050 IFMID$(IN$,DV,1)="("THEN9100
  191. 9060 G1$=G1$+MID$(IN$,DV,1)
  192. 9070 NEXT
  193. 9080 WA=1:RETURN
  194. 9100 IO$=RIGHT$(IN$,(LEN(IN$)-LEN(G1$)))
  195. 9110 G2$=""
  196. 9120 FORDV=1TOLEN(IO$)
  197. 9130 IFMID$(IO$,DV,1)=")"THEN9200
  198. 9140 G2$=G2$+MID$(IO$,DV,1)
  199. 9150 NEXT
  200. 9180 WA=1:RETURN
  201. 9200 G2$=G2$+MID$(IO$,DV,1)
  202. 9210 G3$=RIGHT$(IO$,(LEN(IO$)-LEN(G2$)))
  203. 9900 RETURN
  204. 10000 REM COMPARING TRUE FACTORS AND ANSWER
  205. 10010 IFG1$<>F1$THENWA=1:RETURN
  206. 10020 IFG2$<>F2$GOTO10100
  207. 10030 IFG3$<>F3$THENWA=1:RETURN
  208. 10050 RETURN
  209. 10100 IFG2$<>F3$THENWA=1:RETURN
  210. 10110 IFG3$<>F2$THENWA=1:RETURN
  211. 10200 RETURN
  212. 11000 REM PLACE MARKERS
  213. 11010 PRINT""
  214. 11020 FORDV=1TOPN
  215. 11030 PRINT
  216. 11032 NEXT
  217. 11035 PRINT"[145][145]"
  218. 11040 BR$=""+STR$(PN)+"[146]"
  219. 11050 GOSUB8000:PM$=BR$
  220. 11060 SA$=""
  221. 11070 FORDV=0TOSC(PN):SA$=SA$+" ":NEXT
  222. 11080 SB$=""
  223. 11090 FORDV=0TO36-SC(PN):SB$=SB$+" ":NEXT
  224. 11100 PRINT"[145]";SA$;PM$;SB$;"[157][165]"
  225. 11200 RETURN
  226.